Programação com a Linguagem C

Entrada de Dados Formatada

/*
      UFPB/CCT/DSC - Introducao a Programacao/2001.1
 
      Este programa calcula a media aritmetica entre 
      dois valores fornecidos pelo usuario
 
      Autor(a): Livia M. R. Sampaio
 
*/
 
 
#include <stdio.h>
#include <conio.h>
#include <stdlib.h>
 
void main() {
 
      /*declaracao de variaveis*/
      float mediaAritmetica;
      float valor1, valor2;
 
      clrscr(); /*comando para limpar a tela*/
 
      /*entrada de dados*/
      printf("Entre com dois valores para calcular a media aritmetica\n(separe os valores com espaco em branco) => ");
      scanf("%e%e", &valor1, &valor2);
 
      /*calculando a media aritmetica*/
      mediaAritmetica = (valor1 + valor2) / 2.0f;
 
      /*saida de dados*/
      printf("A media aritmetica entre %f e %f eh: %f\n", valor1,
              valor2, mediaAritmetica);
}

scanf("%e%e", &valor1, &valor2);

tem-se o uso da função scanf() para entrada de dados formatada.

Int

scanf

(const char* formato,

...)

Valor de retorno

Nome da função

Cadeia de formato

Lista de 

argumentos

O valor de retorno será EOF se ocorrer um fim de arquivo ou um erro, caso contrário, este valor representará o número de itens convertidos e atribuídos.

A cadeia de formato pode conter: espaços (caractere de espaço em branco, tabulação ou nova linha); caracteres comuns; especificações de conversão.

Uma especificação de conversão determina que tipo de dado deve ser lido em seguida (formato de conversão do próximo valor de entrada). Forma geral: % caractere_de_conversão.< /font>

Os especificadores de conversão coincidem, em ordem, com os argumentos que formam a lista de argumentos.

Alguns caracteres de conversão válidos para o scanf():

Caractere

Dado de Entrada

Tipo de Argumento

D

inteiro decimal

int*

O

inteiro octal

int*

X

inteiro hexadecimal

int*

C

caracteres

char*, não inclui '\0'

S

cadeia de caracteres sem espaço em branco

char*, inclui '\0'

e, f e g

número em ponto flutuante

float*

Um espaço na cadeia de formato faz com que scanf() leia e descarte um ou mais caracteres em branco da cadeia de entrada.

Um caractere comum faz com que scanf() leia e descarte um caractere igual. Por exemplo: "%d,%d" faz com que scanf() leia um inteiro e descar te uma vírgula, só então, leia outro inteiro.

Todas as variáveis usadas para receber valores através de scanf() devem ser passadas através de seus endereços.

 

·         A função scanf() deriva de:

int fscanf(FILE* fluxo, const char* formato, ...)

onde,

fluxo = entrada padrão (stdin)

 

Funções de Entrada e Saída de Caracteres

 
/*
      UFPB/CCT/DSC/Introducao a Programacao - 2001.1
      Este programa deve ler caracteres da entrada padrao e
      mostra-los em maiusculo
 
      Autor(a): Livia Maria Rodrigues Sampaio
*/
 
 
#include <stdio.h>
#include <conio.h>
 
#define ENTER '\n'
 
void main() {
 
      /*declaracao de variaveis*/
      char caractere;
      const char prompt[] = "\nDigite a linha de texto a ser processada, seguida de : \n";
 
      /*interface com o usuario para entrada de dados*/
      printf("%s", prompt);
 
      /*processamento da linha de texto informada*/
      while ((caractere = getchar()) != ENTER) {
            if (islower(caractere))
                  caractere = toupper(caractere);
            putchar(caractere);
      }
}

·         Percebemos o uso de duas funções para entrada/saída de caracteres.

o        A função getchar() espera até que uma tecla seja pressionada e retorna o seu valor; a tecla pressionada é também mostrada automaticamente na saída padrão.

o        A função putchar() escreve seu argumento caractere na saída padrão a partir da posição atual do cursor.

·         Protótipos para getchar() e putchar():

Int

getchar

(void)

Valor de retorno

Nome da função

Argumento

 

int

putchar

(int c)

Valor de retorno

Nome da função

Argumento

·         A função getchar() retorna um inteiro, mas é mostrado o caractere corresponde a este número inteiro.

·         A função putchar recebe como argumento um caractere.

o        Embora putchar seja declarada como usando um parâmetro inteiro, o que é realmente escrito na saída padrão é o caractere correspondente ao número inteiro.

·         A função putchar retorna o caractere escrito na saída padrão, ou EOF, se ocorrer um erro.

·         Alternativas (mais comuns) para a função getchar():

int getch(void)

int getche(void)

·         A função getch() espera até que uma tecla seja pressionada e retorna, imediatamente; o valor da tecla não é mostrado na saída padrão.

·         A função getche() é semelhante a getch(), sendo que, o valor da tecla capturado é mostrado na saída padrão.

 

Lendo e Escrevendo Strings (cadeias de caracteres)

·         As funções gets() e puts(), são usadas para ler e mostrar cadeias de caracteres - strings - na saída padrão.

o        A função gets() lê uma string a partir do teclado e coloca esta string no endereço apontado por seu argumento;

o        A função retorna quando for pressionada a tecla ENTER; no final da string lida com gets() é colocado um terminador nulo - '/0' -

o        Protótipo para gets():

char* gets(char* str)

onde,

str é a cadeia de caracteres que conterá a string fornecida pelo usuário.

o        Exemplo de uso:

o                      
o                           . . .
o                           char nome[50];
o                           . . .
o                           printf("\nInforme o nome do aluno:");
o                           gets(nome);
o                           . . .
   

o        A função puts() escreve seu argumento string na saída padrão, seguido de uma nova linha.

o        Protótipo para puts():

int puts(char* str)

onde,

str é a cadeia de caracteres que será mostrada.

o        Vale salientar que puts() escreve, apenas strings na saída padrão; além disso não pode fazer conversões de formato. Portanto, é bem menos "robusta" do que a função printf(), já discutida.

§         Freqüentemente utilizada quando é importante ter um código altamente otimizado.

o        A função puts() retorna EOF se ocorrer um erro, caso contrário, esta função retorna um valor diferente de 0 (zero)

o        Exemplo de uso:

o                      
o                           . . .
o                           char msg[] = "Bom dia!!";
o                           . . .
o                           puts(msg);
o                           . . .
   

Versão Word (.doc) do material acima